/**
 * This is a generated class and is not intended for modification.  To customize behavior
 * of this value object you may modify the generated sub-class of this class - GratuidadDetDTO.as.
 */

package valueObjects
{
import com.adobe.fiber.services.IFiberManagingService;
import com.adobe.fiber.util.FiberUtils;
import com.adobe.fiber.valueobjects.IValueObject;
import flash.events.Event;
import flash.events.EventDispatcher;
import mx.binding.utils.ChangeWatcher;
import mx.collections.ArrayCollection;
import mx.events.PropertyChangeEvent;
import mx.validators.ValidationResult;

import flash.net.registerClassAlias;
import flash.net.getClassByAlias;
import com.adobe.fiber.core.model_internal;
import com.adobe.fiber.valueobjects.IPropertyIterator;
import com.adobe.fiber.valueobjects.AvailablePropertyIterator;

use namespace model_internal;

[ExcludeClass]
public class _Super_GratuidadDetDTO extends flash.events.EventDispatcher implements com.adobe.fiber.valueobjects.IValueObject
{
    model_internal static function initRemoteClassAliasSingle(cz:Class) : void
    {
        try
        {
            if (flash.net.getClassByAlias("com.social.dto.GratuidadDetDTO") == null)
            {
                flash.net.registerClassAlias("com.social.dto.GratuidadDetDTO", cz);
            }
        }
        catch (e:Error)
        {
            flash.net.registerClassAlias("com.social.dto.GratuidadDetDTO", cz);
        }
    }

    model_internal static function initRemoteClassAliasAllRelated() : void
    {
    }

    model_internal var _dminternal_model : _GratuidadDetDTOEntityMetadata;
    model_internal var _changedObjects:mx.collections.ArrayCollection = new ArrayCollection();

    public function getChangedObjects() : Array
    {
        _changedObjects.addItemAt(this,0);
        return _changedObjects.source;
    }

    public function clearChangedObjects() : void
    {
        _changedObjects.removeAll();
    }

    /**
     * properties
     */
    private var _internal_percenGratuidad : String;
    private var _internal_fecInicio : String;
    private var _internal_precioPAC : String;
    private var _internal_sigla : String;
    private var _internal_descripcionServ : String;
    private var _internal_idServicio : String;
    private var _internal_precioLista : String;
    private var _internal_fecFin : String;
    private var _internal_fecRegistro : String;
    private var _internal_idGratuidadDet : String;
    private var _internal_vigente : String;

    private static var emptyArray:Array = new Array();


    /**
     * derived property cache initialization
     */
    model_internal var _cacheInitialized_isValid:Boolean = false;

    model_internal var _changeWatcherArray:Array = new Array();

    public function _Super_GratuidadDetDTO()
    {
        _model = new _GratuidadDetDTOEntityMetadata(this);

        // Bind to own data or source properties for cache invalidation triggering
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "percenGratuidad", model_internal::setterListenerPercenGratuidad));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "fecInicio", model_internal::setterListenerFecInicio));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "precioPAC", model_internal::setterListenerPrecioPAC));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "sigla", model_internal::setterListenerSigla));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "descripcionServ", model_internal::setterListenerDescripcionServ));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "idServicio", model_internal::setterListenerIdServicio));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "precioLista", model_internal::setterListenerPrecioLista));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "fecFin", model_internal::setterListenerFecFin));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "fecRegistro", model_internal::setterListenerFecRegistro));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "idGratuidadDet", model_internal::setterListenerIdGratuidadDet));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "vigente", model_internal::setterListenerVigente));

    }

    /**
     * data/source property getters
     */

    [Bindable(event="propertyChange")]
    public function get percenGratuidad() : String
    {
        return _internal_percenGratuidad;
    }

    [Bindable(event="propertyChange")]
    public function get fecInicio() : String
    {
        return _internal_fecInicio;
    }

    [Bindable(event="propertyChange")]
    public function get precioPAC() : String
    {
        return _internal_precioPAC;
    }

    [Bindable(event="propertyChange")]
    public function get sigla() : String
    {
        return _internal_sigla;
    }

    [Bindable(event="propertyChange")]
    public function get descripcionServ() : String
    {
        return _internal_descripcionServ;
    }

    [Bindable(event="propertyChange")]
    public function get idServicio() : String
    {
        return _internal_idServicio;
    }

    [Bindable(event="propertyChange")]
    public function get precioLista() : String
    {
        return _internal_precioLista;
    }

    [Bindable(event="propertyChange")]
    public function get fecFin() : String
    {
        return _internal_fecFin;
    }

    [Bindable(event="propertyChange")]
    public function get fecRegistro() : String
    {
        return _internal_fecRegistro;
    }

    [Bindable(event="propertyChange")]
    public function get idGratuidadDet() : String
    {
        return _internal_idGratuidadDet;
    }

    [Bindable(event="propertyChange")]
    public function get vigente() : String
    {
        return _internal_vigente;
    }

    public function clearAssociations() : void
    {
    }

    /**
     * data/source property setters
     */

    public function set percenGratuidad(value:String) : void
    {
        var oldValue:String = _internal_percenGratuidad;
        if (oldValue !== value)
        {
            _internal_percenGratuidad = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "percenGratuidad", oldValue, _internal_percenGratuidad));
        }
    }

    public function set fecInicio(value:String) : void
    {
        var oldValue:String = _internal_fecInicio;
        if (oldValue !== value)
        {
            _internal_fecInicio = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "fecInicio", oldValue, _internal_fecInicio));
        }
    }

    public function set precioPAC(value:String) : void
    {
        var oldValue:String = _internal_precioPAC;
        if (oldValue !== value)
        {
            _internal_precioPAC = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "precioPAC", oldValue, _internal_precioPAC));
        }
    }

    public function set sigla(value:String) : void
    {
        var oldValue:String = _internal_sigla;
        if (oldValue !== value)
        {
            _internal_sigla = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "sigla", oldValue, _internal_sigla));
        }
    }

    public function set descripcionServ(value:String) : void
    {
        var oldValue:String = _internal_descripcionServ;
        if (oldValue !== value)
        {
            _internal_descripcionServ = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "descripcionServ", oldValue, _internal_descripcionServ));
        }
    }

    public function set idServicio(value:String) : void
    {
        var oldValue:String = _internal_idServicio;
        if (oldValue !== value)
        {
            _internal_idServicio = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "idServicio", oldValue, _internal_idServicio));
        }
    }

    public function set precioLista(value:String) : void
    {
        var oldValue:String = _internal_precioLista;
        if (oldValue !== value)
        {
            _internal_precioLista = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "precioLista", oldValue, _internal_precioLista));
        }
    }

    public function set fecFin(value:String) : void
    {
        var oldValue:String = _internal_fecFin;
        if (oldValue !== value)
        {
            _internal_fecFin = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "fecFin", oldValue, _internal_fecFin));
        }
    }

    public function set fecRegistro(value:String) : void
    {
        var oldValue:String = _internal_fecRegistro;
        if (oldValue !== value)
        {
            _internal_fecRegistro = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "fecRegistro", oldValue, _internal_fecRegistro));
        }
    }

    public function set idGratuidadDet(value:String) : void
    {
        var oldValue:String = _internal_idGratuidadDet;
        if (oldValue !== value)
        {
            _internal_idGratuidadDet = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "idGratuidadDet", oldValue, _internal_idGratuidadDet));
        }
    }

    public function set vigente(value:String) : void
    {
        var oldValue:String = _internal_vigente;
        if (oldValue !== value)
        {
            _internal_vigente = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "vigente", oldValue, _internal_vigente));
        }
    }

    /**
     * Data/source property setter listeners
     *
     * Each data property whose value affects other properties or the validity of the entity
     * needs to invalidate all previously calculated artifacts. These include:
     *  - any derived properties or constraints that reference the given data property.
     *  - any availability guards (variant expressions) that reference the given data property.
     *  - any style validations, message tokens or guards that reference the given data property.
     *  - the validity of the property (and the containing entity) if the given data property has a length restriction.
     *  - the validity of the property (and the containing entity) if the given data property is required.
     */

    model_internal function setterListenerPercenGratuidad(value:flash.events.Event):void
    {
        _model.invalidateDependentOnPercenGratuidad();
    }

    model_internal function setterListenerFecInicio(value:flash.events.Event):void
    {
        _model.invalidateDependentOnFecInicio();
    }

    model_internal function setterListenerPrecioPAC(value:flash.events.Event):void
    {
        _model.invalidateDependentOnPrecioPAC();
    }

    model_internal function setterListenerSigla(value:flash.events.Event):void
    {
        _model.invalidateDependentOnSigla();
    }

    model_internal function setterListenerDescripcionServ(value:flash.events.Event):void
    {
        _model.invalidateDependentOnDescripcionServ();
    }

    model_internal function setterListenerIdServicio(value:flash.events.Event):void
    {
        _model.invalidateDependentOnIdServicio();
    }

    model_internal function setterListenerPrecioLista(value:flash.events.Event):void
    {
        _model.invalidateDependentOnPrecioLista();
    }

    model_internal function setterListenerFecFin(value:flash.events.Event):void
    {
        _model.invalidateDependentOnFecFin();
    }

    model_internal function setterListenerFecRegistro(value:flash.events.Event):void
    {
        _model.invalidateDependentOnFecRegistro();
    }

    model_internal function setterListenerIdGratuidadDet(value:flash.events.Event):void
    {
        _model.invalidateDependentOnIdGratuidadDet();
    }

    model_internal function setterListenerVigente(value:flash.events.Event):void
    {
        _model.invalidateDependentOnVigente();
    }


    /**
     * valid related derived properties
     */
    model_internal var _isValid : Boolean;
    model_internal var _invalidConstraints:Array = new Array();
    model_internal var _validationFailureMessages:Array = new Array();

    /**
     * derived property calculators
     */

    /**
     * isValid calculator
     */
    model_internal function calculateIsValid():Boolean
    {
        var violatedConsts:Array = new Array();
        var validationFailureMessages:Array = new Array();

        var propertyValidity:Boolean = true;
        if (!_model.percenGratuidadIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_percenGratuidadValidationFailureMessages);
        }
        if (!_model.fecInicioIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_fecInicioValidationFailureMessages);
        }
        if (!_model.precioPACIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_precioPACValidationFailureMessages);
        }
        if (!_model.siglaIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_siglaValidationFailureMessages);
        }
        if (!_model.descripcionServIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_descripcionServValidationFailureMessages);
        }
        if (!_model.idServicioIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_idServicioValidationFailureMessages);
        }
        if (!_model.precioListaIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_precioListaValidationFailureMessages);
        }
        if (!_model.fecFinIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_fecFinValidationFailureMessages);
        }
        if (!_model.fecRegistroIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_fecRegistroValidationFailureMessages);
        }
        if (!_model.idGratuidadDetIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_idGratuidadDetValidationFailureMessages);
        }
        if (!_model.vigenteIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_vigenteValidationFailureMessages);
        }

        model_internal::_cacheInitialized_isValid = true;
        model_internal::invalidConstraints_der = violatedConsts;
        model_internal::validationFailureMessages_der = validationFailureMessages;
        return violatedConsts.length == 0 && propertyValidity;
    }

    /**
     * derived property setters
     */

    model_internal function set isValid_der(value:Boolean) : void
    {
        var oldValue:Boolean = model_internal::_isValid;
        if (oldValue !== value)
        {
            model_internal::_isValid = value;
            _model.model_internal::fireChangeEvent("isValid", oldValue, model_internal::_isValid);
        }
    }

    /**
     * derived property getters
     */

    [Transient]
    [Bindable(event="propertyChange")]
    public function get _model() : _GratuidadDetDTOEntityMetadata
    {
        return model_internal::_dminternal_model;
    }

    public function set _model(value : _GratuidadDetDTOEntityMetadata) : void
    {
        var oldValue : _GratuidadDetDTOEntityMetadata = model_internal::_dminternal_model;
        if (oldValue !== value)
        {
            model_internal::_dminternal_model = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "_model", oldValue, model_internal::_dminternal_model));
        }
    }

    /**
     * methods
     */


    /**
     *  services
     */
    private var _managingService:com.adobe.fiber.services.IFiberManagingService;

    public function set managingService(managingService:com.adobe.fiber.services.IFiberManagingService):void
    {
        _managingService = managingService;
    }

    model_internal function set invalidConstraints_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_invalidConstraints;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_invalidConstraints = value;
            _model.model_internal::fireChangeEvent("invalidConstraints", oldValue, model_internal::_invalidConstraints);
        }
    }

    model_internal function set validationFailureMessages_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_validationFailureMessages;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_validationFailureMessages = value;
            _model.model_internal::fireChangeEvent("validationFailureMessages", oldValue, model_internal::_validationFailureMessages);
        }
    }

    model_internal var _doValidationCacheOfPercenGratuidad : Array = null;
    model_internal var _doValidationLastValOfPercenGratuidad : String;

    model_internal function _doValidationForPercenGratuidad(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfPercenGratuidad != null && model_internal::_doValidationLastValOfPercenGratuidad == value)
           return model_internal::_doValidationCacheOfPercenGratuidad ;

        _model.model_internal::_percenGratuidadIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isPercenGratuidadAvailable && _internal_percenGratuidad == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "percenGratuidad is required"));
        }

        model_internal::_doValidationCacheOfPercenGratuidad = validationFailures;
        model_internal::_doValidationLastValOfPercenGratuidad = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfFecInicio : Array = null;
    model_internal var _doValidationLastValOfFecInicio : String;

    model_internal function _doValidationForFecInicio(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfFecInicio != null && model_internal::_doValidationLastValOfFecInicio == value)
           return model_internal::_doValidationCacheOfFecInicio ;

        _model.model_internal::_fecInicioIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isFecInicioAvailable && _internal_fecInicio == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "fecInicio is required"));
        }

        model_internal::_doValidationCacheOfFecInicio = validationFailures;
        model_internal::_doValidationLastValOfFecInicio = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfPrecioPAC : Array = null;
    model_internal var _doValidationLastValOfPrecioPAC : String;

    model_internal function _doValidationForPrecioPAC(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfPrecioPAC != null && model_internal::_doValidationLastValOfPrecioPAC == value)
           return model_internal::_doValidationCacheOfPrecioPAC ;

        _model.model_internal::_precioPACIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isPrecioPACAvailable && _internal_precioPAC == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "precioPAC is required"));
        }

        model_internal::_doValidationCacheOfPrecioPAC = validationFailures;
        model_internal::_doValidationLastValOfPrecioPAC = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfSigla : Array = null;
    model_internal var _doValidationLastValOfSigla : String;

    model_internal function _doValidationForSigla(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfSigla != null && model_internal::_doValidationLastValOfSigla == value)
           return model_internal::_doValidationCacheOfSigla ;

        _model.model_internal::_siglaIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isSiglaAvailable && _internal_sigla == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "sigla is required"));
        }

        model_internal::_doValidationCacheOfSigla = validationFailures;
        model_internal::_doValidationLastValOfSigla = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfDescripcionServ : Array = null;
    model_internal var _doValidationLastValOfDescripcionServ : String;

    model_internal function _doValidationForDescripcionServ(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfDescripcionServ != null && model_internal::_doValidationLastValOfDescripcionServ == value)
           return model_internal::_doValidationCacheOfDescripcionServ ;

        _model.model_internal::_descripcionServIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isDescripcionServAvailable && _internal_descripcionServ == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "descripcionServ is required"));
        }

        model_internal::_doValidationCacheOfDescripcionServ = validationFailures;
        model_internal::_doValidationLastValOfDescripcionServ = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfIdServicio : Array = null;
    model_internal var _doValidationLastValOfIdServicio : String;

    model_internal function _doValidationForIdServicio(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfIdServicio != null && model_internal::_doValidationLastValOfIdServicio == value)
           return model_internal::_doValidationCacheOfIdServicio ;

        _model.model_internal::_idServicioIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isIdServicioAvailable && _internal_idServicio == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "idServicio is required"));
        }

        model_internal::_doValidationCacheOfIdServicio = validationFailures;
        model_internal::_doValidationLastValOfIdServicio = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfPrecioLista : Array = null;
    model_internal var _doValidationLastValOfPrecioLista : String;

    model_internal function _doValidationForPrecioLista(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfPrecioLista != null && model_internal::_doValidationLastValOfPrecioLista == value)
           return model_internal::_doValidationCacheOfPrecioLista ;

        _model.model_internal::_precioListaIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isPrecioListaAvailable && _internal_precioLista == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "precioLista is required"));
        }

        model_internal::_doValidationCacheOfPrecioLista = validationFailures;
        model_internal::_doValidationLastValOfPrecioLista = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfFecFin : Array = null;
    model_internal var _doValidationLastValOfFecFin : String;

    model_internal function _doValidationForFecFin(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfFecFin != null && model_internal::_doValidationLastValOfFecFin == value)
           return model_internal::_doValidationCacheOfFecFin ;

        _model.model_internal::_fecFinIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isFecFinAvailable && _internal_fecFin == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "fecFin is required"));
        }

        model_internal::_doValidationCacheOfFecFin = validationFailures;
        model_internal::_doValidationLastValOfFecFin = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfFecRegistro : Array = null;
    model_internal var _doValidationLastValOfFecRegistro : String;

    model_internal function _doValidationForFecRegistro(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfFecRegistro != null && model_internal::_doValidationLastValOfFecRegistro == value)
           return model_internal::_doValidationCacheOfFecRegistro ;

        _model.model_internal::_fecRegistroIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isFecRegistroAvailable && _internal_fecRegistro == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "fecRegistro is required"));
        }

        model_internal::_doValidationCacheOfFecRegistro = validationFailures;
        model_internal::_doValidationLastValOfFecRegistro = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfIdGratuidadDet : Array = null;
    model_internal var _doValidationLastValOfIdGratuidadDet : String;

    model_internal function _doValidationForIdGratuidadDet(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfIdGratuidadDet != null && model_internal::_doValidationLastValOfIdGratuidadDet == value)
           return model_internal::_doValidationCacheOfIdGratuidadDet ;

        _model.model_internal::_idGratuidadDetIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isIdGratuidadDetAvailable && _internal_idGratuidadDet == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "idGratuidadDet is required"));
        }

        model_internal::_doValidationCacheOfIdGratuidadDet = validationFailures;
        model_internal::_doValidationLastValOfIdGratuidadDet = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfVigente : Array = null;
    model_internal var _doValidationLastValOfVigente : String;

    model_internal function _doValidationForVigente(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfVigente != null && model_internal::_doValidationLastValOfVigente == value)
           return model_internal::_doValidationCacheOfVigente ;

        _model.model_internal::_vigenteIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isVigenteAvailable && _internal_vigente == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "vigente is required"));
        }

        model_internal::_doValidationCacheOfVigente = validationFailures;
        model_internal::_doValidationLastValOfVigente = value;

        return validationFailures;
    }
    

}

}
